/*Copyright (C) 2009 - 2011 MASSART GAUTHIER

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/

#include "../headers.h"
void ban_menu_option();
void ban_init_option();

void ban_menu(void) {
	short choix_menu = 0;
	char *contenu_menu = "Jouer seul\nJouer à deux\nManuel du bantumi\nOptions\nRevenir au menu principal\n", *contenu_titre = "MENU DU BANTUMI";
	ban_init_option();

	while(choix_menu < 5) {
		clear();
		choix_menu = afficher_menu_jeu(contenu_menu, contenu_titre);
		switch(choix_menu) {
		case 1:
			ban_jeu(true);
			break;
		case 2:
			ban_jeu(false);
			break;
		case 3:
			ban_man();
			break;
		case 4:
			ban_menu_option();
			break;
		case 5:
			clear();
			break;
		default:
			break;
		}
	}
}

void ban_menu_option() {
	short quitter = 0, k = 0, choix = 1, nombre_choix = 8, x = 10, y = 10;
	char nom[10];
	bool premier_tour = true;

	clear();
	afficher_titre("OPTION BANTUMI");
	afficher_cadre(3, DEFAULT_SCREEN_SIZE_X - 2, 7, 39, 1);

	while(quitter == 0) {

		if(!premier_tour) //Permet l'affichage des options
			k = getch();
		else
			premier_tour = false;

		if(k == touche_haut && choix > 1) {
			choix--;
		}
		else if(k == touche_bas && choix < nombre_choix) {
			choix++;
		}

		afficher_fleches_options(y, choix);

		changer_couleur(x, y , 0, "Couleur du tableau :               ", &ban_couleur_tableau);
		changer_couleur(x, y + 2, 0, "Couleur des cailloux :             ", &ban_couleur_cailloux);
		changer_couleur(x, y + 4, 0, "Couleur du fond :                  ", &ban_couleur_fond);
		changer_couleur(x, y + 6, 0, "Couleur du sélecteur :             ", &ban_couleur_selecteur);
		afficher_barre_option(x, y + 8, 0, "Nombre de cailloux [1 → 10] :       ", 1, 10, 1, &ban_nombre_cailloux);
		mvaddstr(y + 10, x, "Réinitialiser les modifications");
		mvaddstr(y + 12, x, "Revenir au menu du bantumi sans sauvegarder les modifications");
		mvaddstr(y + 14, x, "Revenir au menu du bantumi  et  sauvegarder les modifications");

		if(choix == 1) {
			changer_couleur(x, y , k, "Couleur du tableau :               ", &ban_couleur_tableau);
		}
		else if(choix == 2) {
			changer_couleur(x, y + 2, k, "Couleur des cailloux :             ", &ban_couleur_cailloux);
		}
		else if(choix == 3) {
			changer_couleur(x, y + 4, k, "Couleur du fond :                  ", &ban_couleur_fond);
		}
		else if(choix == 4) {
			changer_couleur(x, y + 6, k, "Couleur du sélecteur :             ", &ban_couleur_selecteur);
		}
		else if(choix == 5) {
			afficher_barre_option(x, y + 8, k, "Nombre de cailloux [1 → 10] :       ", 1, 10, 1, &ban_nombre_cailloux);
		}
		else if(choix == 6) {
			CSLP_Color(CTS, CBS);
			mvaddstr(y + 10, x, "Réinitialiser les modifications");
			CSLP_Color(COLOR_WHITE, COLOR_BLACK);
			if(k == KEY_RETURN) {
				remove("scores/BantumiScores.sav");
				ban_init_option();
			}
		}
		else if(choix == 7) {
			CSLP_Color(CTS, CBS);
			mvaddstr(y + 12, x, "Revenir au menu du bantumi sans sauvegarder les modifications");
			CSLP_Color(COLOR_WHITE, COLOR_BLACK);
			if(k == KEY_RETURN)
				quitter = 1;
		}
		else if(choix == 8) {
			CSLP_Color(CTS, CBS);
			mvaddstr(y + 14, x, "Revenir au menu du bantumi  et  sauvegarder les modifications");
			CSLP_Color(COLOR_WHITE, COLOR_BLACK);
			if(k == KEY_RETURN)
				quitter = 2;
		}
	}
	if(quitter == 2) {
		nom_couleur(ban_couleur_cailloux, nom);
		ini_puts("Couleurs", "couleur_cailloux", nom, "scores/BantumiScores.sav");
		nom_couleur(ban_couleur_tableau, nom);
		ini_puts("Couleurs", "couleur_tableau", nom, "scores/BantumiScores.sav");
		nom_couleur(ban_couleur_fond, nom);
		ini_puts("Couleurs", "couleur_fond", nom, "scores/BantumiScores.sav");
		nom_couleur(ban_couleur_selecteur, nom);
		ini_puts("Couleurs", "couleur_selecteur", nom, "scores/BantumiScores.sav");
		ini_putl("Cailloux", "nombre", ban_nombre_cailloux, "scores/BantumiScores.sav");
	}
}
void ban_init_option() {
	char nom[10];
	if(fichier_existe("scores/BantumiScores.sav")) {
		ini_gets("Couleurs", "couleur_cailloux", "aap", nom, sizearray(nom), "scores/BantumiScores.sav");
		ban_couleur_cailloux = couleur_nom(nom);
		ini_gets("Couleurs", "couleur_tableau", "aap", nom, sizearray(nom), "scores/BantumiScores.sav");
		ban_couleur_tableau = couleur_nom(nom);
		ini_gets("Couleurs", "couleur_fond", "aap", nom, sizearray(nom), "scores/BantumiScores.sav");
		ban_couleur_fond = couleur_nom(nom);
		ini_gets("Couleurs", "couleur_selecteur", "aap", nom, sizearray(nom), "scores/BantumiScores.sav");
		ban_couleur_selecteur = couleur_nom(nom);
		ban_nombre_cailloux = ini_getl("Cailloux", "nombre", -1, "scores/BantumiScores.sav");
	}
	else {
		ban_nombre_cailloux = 3, ban_couleur_cailloux = COLOR_RED, ban_couleur_fond = COLOR_CYAN, ban_couleur_tableau = COLOR_WHITE, ban_couleur_selecteur = COLOR_YELLOW;
	}
}
